/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bean;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;

public class Livro extends Obra implements Serializable {

    public Livro() {
        this.apoios = new ArrayList<Apoio>();
        
        this.editora = new Editora();
        this.idioma = new Idioma();
        this.temas = new ArrayList<Tema>();
        this.formato = new Formato();
    }

    public void addAutor(Autor a) {
        ArrayList<Autor>autores = super.getAutores();
        autores.add(a);
        super.setAutores(autores);
    }

    public Formato getFormato() {
        return formato;
    }

    public void setFormato(Formato formato) {
        this.formato = formato;
    }

    public Editora getEditora() {
        return editora;
    }

    public void setEditora(Editora editora) {
        this.editora = editora;
    }

    public String getIndice() {
        return indice;
    }

    public void setIndice(String indice) {
        this.indice = indice;
    }

    public ArrayList<Tema> getTemas() {
        return temas;
    }

    public void setTemas(ArrayList<Tema> temas) {
        this.temas = temas;
    }

    public ArrayList<Apoio> getApoios() {
        return apoios;
    }

    public void setApoios(ArrayList<Apoio> apoios) {
        this.apoios = apoios;
    }

    public String getISSN_ISBN() {
        return ISSN_ISBN;
    }

    public void setISSN_ISBN(String ISSN_ISBN) {
        this.ISSN_ISBN = ISSN_ISBN;
    }

    public int getQuantidadePaginas() {
        return quantidadePaginas;
    }

    public void setQuantidadePaginas(int quantidadePaginas) {
        this.quantidadePaginas = quantidadePaginas;
    }

    public Idioma getIdioma() {
        return idioma;
    }

    public void setIdioma(Idioma idioma) {
        this.idioma = idioma;
    }

    public void addApoio(Apoio apoio) {
        this.apoios.add(apoio);
    }

    public void addTema(Tema tema) {
        this.temas.add(tema);
    }
    @Override
    public String getObraToString(){
        String obraToString = "";
        obraToString = super.getAutoresToStringReferencia() +"<b>" + super.getTituloCitacao() + "</b>" + ", "+ super.getCidadePublicacao()+": " + this.editora.getNome() + ", " + super.getAnoPublicacao()  + ". " + this.quantidadePaginas + "p" ; 
              
        return obraToString;
    }
    
    @Override
    public String toString(){
       
        String toString = "<b>Tipologia da Obra</b> <br/>" + getTipo() + "<br/><br/>";
        toString = toString + "<b>Título</b> <br/>" + getTitulo() + "<br/><br/>";
        toString = toString + "<b>Autores</b> </br>" + getAutoresToString() + "<br/><br/>";
        toString = toString + "<b>Publicação</b></br>" + getCidadePublicacao()+", "+ getEditora().getNome() + ", "+ getAnoPublicacao()+ "<br/><br/>";
        toString = toString + "<b>Índice</b> </br>" + getIndice() + "<br/><br/>";
        toString = toString + "<b>Apoio(s)</b> </br>" + getApoiosToString() + "<br/><br/>";
        toString = toString + "<b>Palavras-chave</b> </br>" + getTemasToString() + "<br/><br/>";
        
        return toString;
    }

    public String getTemasToString() {
        temasToString = "<ul>";
        Iterator i = temas.iterator();
        Tema t = new Tema();
        while (i.hasNext()) {
            t = (Tema) i.next();
            String tema = t.getTema();

            temasToString = temasToString + "<li>" + tema + "<li/><br>";
        }

       temasToString = temasToString + "<ul/>";
        return temasToString;
    }
    
     public String getApoiosToString() {
        apoiosToString = "<ul>";
        Iterator i = apoios.iterator();
        Apoio a= new Apoio();
        while (i.hasNext()) {
            a = (Apoio) i.next();
            String tema = a.getNome();

            apoiosToString = apoiosToString + "<li>" + tema + "<li/><br>";
        }

       apoiosToString = apoiosToString + "<ul/>";
        return apoiosToString;
    }

    public void setTemasToString(String temasToString) {
        this.temasToString = temasToString;
    }


    public void setApoiosToString(String apoiosToString) {
        this.apoiosToString = apoiosToString;
    }
    
    
    

    
    
    private Formato formato;
    private Editora editora;
    private String ISSN_ISBN = "";
    private String indice = "";
    private Idioma idioma;
    private ArrayList<Tema> temas;
    private ArrayList<Apoio> apoios;
    private int quantidadePaginas;
    private String temasToString = "";
    private String apoiosToString = "";
    
    
}
